﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace coliseu.BussinessLayer
{
    public class FornecedorBL
    {
         private coliseuEntities cEntities;

         public FornecedorBL()
        {
            cEntities = new coliseuEntities(Properties.Settings.Default.conn_coliseu);
        }

        public List<fornecedor> selecionar()
        {
            return (from x in cEntities.fornecedor select x).ToList();
        }

      //  public List<funcionario> selecionar(string descricao)
      //  {
           // return (from x in cEntities.bloco where x.descricao.Contains(descricao) select x).ToList();
      //  }

        public List<fornecedor> selecionar(string nome, int tipo_serv)
        {
            if (tipo_serv > 0)
            {
                return
                    (
                        from x in cEntities.fornecedor
                        where x.razao_social.Contains(nome) && x.id_tipo_servico == tipo_serv
                        select x
                    ).ToList();
            }
            else
            {
                return
                   (
                       from x in cEntities.fornecedor
                       where x.razao_social.Contains(nome)
                       select x
                   ).ToList();
            }
        }
        public fornecedor selecionar(int idFornecedor)
        {
            return
                (
                    from x in cEntities.fornecedor
                    where x.id_fornecedor == idFornecedor
                    select x
                ).First();
        }

        public void salvar(fornecedor b, string tipo)
        {

            if (tipo == "insert")
            {
                cEntities.AddTofornecedor(b);
            }
            else
            {
                cEntities.fornecedor.ApplyCurrentValues(b);
            }
            cEntities.SaveChanges();
        }

        public void excluir(fornecedor b)
        {
            cEntities.fornecedor.DeleteObject(b);

            List<fornecedor_contato> x = cEntities.fornecedor_contato.Where(u => u.id_fornecedor == b.id_fornecedor).ToList();
            foreach (fornecedor_contato f in x)
            {

                cEntities.fornecedor_contato.DeleteObject(f);
            }


            cEntities.fornecedor.DeleteObject(b);
            cEntities.SaveChanges();
        }
    }
}
